#!/usr/bin/evn python
# -*- coding: utf-8 -*-
"""
-------------------------------------------------
   文件名称 :     logger
   文件功能描述 :   功能描述
   创建人 :       小钟同学
-------------------------------------------------
   修改描述-2021/11/29:  定义日志类
   logging.Logger对象扮演了三重角色:
     首先,它暴露给应用几个方法以便应用可以在运行时写log.
     其次,Logger对象按照log信息的严重程度或者根据filter对象来决定如何处理log信息(默认的过滤功能).
     最后,logger还负责把log信息传送给相关的handlers.
-------------------------------------------------
————————————————
logging.basicConfig(level = logging.DEBUG,format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s')

logging.basicConfig函数各参数：

filename：指定日志文件名；
filemode：和file函数意义相同，指定日志文件的打开模式，'w'或者'a'；
format：指定输出的格式和内容，format可以输出很多有用的信息，
datefmt：指定时间格式，同time.strftime()；
level：设置日志级别，默认为logging.WARNNING；
stream：指定将日志的输出流，可以指定输出到sys.stderr，sys.stdout或者文件，默认输出到sys.stderr，当stream和filename同时指定时，stream被忽略；
————————————————

"""
import logging


class ConsoleLogger:

    def __init__(self):
        # 获取一个日志的对象-对同一个名字的多个调用logging.getLogger()方法会返回同一个logger对象
        # 其中如果name不给定就用root
        logger = logging.getLogger('console')
        # 设置日志数据记录登记信息
        # 消息级别，如：DEBUG，INFO，WARNING，ERROR，CRITICAL
        logger.setLevel(logging.DEBUG)
        # 定义一个输出控制台的日志处理对象
        handler = logging.StreamHandler()
        handler.setLevel(logging.INFO)
        # 设置日志记录的格式
        log_format = '%(asctime)s  %(levelname)s %(process)d --- [%(threadName)+15s] %(module)-20s : %(message)s'
        formatter = logging.Formatter(log_format, datefmt='%Y-%m-%d %H:%M:%S.000')
        handler.setFormatter(formatter)
        # 给日志添加一个处理器
        # logger.addHandler(servicers)
        self.logger = logger
